gtk-demo: Stop using gdk_surface_get_user_data
authorMatthias Clasen <mclasen@redhat.com>
Sat, 23 Feb 2019 21:54:51 +0000 (16:54 -0500)
committerMatthias Clasen <mclasen@redhat.com>
Sun, 24 Feb 2019 03:24:50 +0000 (22:24 -0500)
Use gtk_root_get_for_surface instead.

demos/gtk-demo/changedisplay.c

index 4c36010e7b22418796fef2f30895b0255c55dec7..5f5717c43d854affc5d9100b4d6bcfae58229645 100644 (file)
@@ -71,20 +71,12 @@ find_toplevel_at_pointer (GdkDisplay *display)
   GdkSurface *pointer_window;
   GtkWidget *widget = NULL;
 
-  pointer_window = gdk_device_get_surface_at_position (gtk_get_current_event_device (),
-                                                      NULL, NULL);
+  pointer_window = gdk_device_get_surface_at_position (gtk_get_current_event_device (), NULL, NULL);
 
-  /* The user data field of a GdkSurface is used to store a pointer
-   * to the widget that created it.
-   */
   if (pointer_window)
-    {
-      gpointer widget_ptr;
-      gdk_surface_get_user_data (pointer_window, &widget_ptr);
-      widget = widget_ptr;
-    }
+    widget = GTK_WIDGET (gtk_root_get_for_surface (pointer_window));
 
-  return widget ? gtk_widget_get_toplevel (widget) : NULL;
+  return widget;
 }
 
 static void